package com.zhenhunfan.hello.aop.demo01.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * <p>Title: CheckUser</p>
 * <p>Description: </p>
 *
 * @author zhenhunfan
 * @version 1.0.0
 * @date 2021/3/30
 */
@Component
@Aspect
public class CheckUser {

    /**
     * 定义切入点，是带有com.zhenhunfan.hello.aop.demo01.annotation.UserCheck注解的方法
     */
    @Pointcut("@annotation(com.zhenhunfan.hello.aop.demo01.annotation.UserCheck)")
    public void pointCut(){

    }

    /**
     * 定义通知是在这个切入点方法的前面执行，前置通知，除非抛出异常否则切入点方法仍旧会执行
     */
    @Before("pointCut()")
    public void advice(){
        System.out.println("--------[demo01 前置通知]--------");
    }
}
